<?php
/**
 * Created by PhpStorm.
 * User: ls721
 * Date: 2016/11/13 0013
 * Time: 22:57
 */

//采用"PHP SDK 快速入门"， "第二步 获取访问凭证 "中获得的应用配置
define('APPKEY', 'JspbDgEIh96c75LCXlPAB3');
define('APPID', 'bfAqELmI7T8GdObpQPWZQ5');
define('MASTERSECRET', 'E7dN72vkuQ8CJjI3gygBz3');
define('HOST', 'http://sdk.open.api.igexin.com/apiex.htm');
define('CID1', '请输入您的CID1');
define('CID2', '请输入您的CID2');
//define('Alias1','请输入您的Alias1');
//define('Alias2','请输入您的Alias2');
require_once(dirname(dirname(__FILE__)) . '/Common/MessagePush/' . 'IGt.Push.php');

class Domain_PushToList
{
    private $igt;

//多推接口案例
    public function __construct()
    {
        $this->igt = new IGeTui(HOST, APPKEY, MASTERSECRET);
    }

    public function pushMessageToListAndroid($user_list,$title,$content)
    {

        //$igt = new IGeTui('',APPKEY,MASTERSECRET);//此方式可通过获取服务端地址列表判断最快域名后进行消息推送，
        //每10分钟检查一次最快域名

        //消息模版：
        // LinkTemplate:通知打开链接功能模板
        $template = $this->IGtLinkTemplateDemo($title,$content);


        //定义"ListMessage"信息体
        $message = new IGtListMessage();
        $message->set_isOffline(true);//是否离线
        $message->set_offlineExpireTime(3600 * 12 * 1000);//离线时间
        $message->set_data($template);//设置推送消息类型
        $message->set_PushNetWorkType(0);//设置是否根据WIFI推送消息，1为wifi推送，0为不限制推送

        $contentId =  $this->igt->getContentId($message);
        //接收方1

//        $user_list = array();
//        $user_list[0] = '2650686ec127fb970ad1f6a577bb83b8';
        $targetList = array();
        for ($i = 0; $i < count($user_list); $i++) {
            $target = new IGtTarget();
            $target->set_appId(APPID);
            $target->set_clientId($user_list[$i]);
            $targetList[$i] = $target;
        }

//    //接收方2
//    $target2 = new IGtTarget();
//    $target2->set_appId(APPID);
//    $target2->set_clientId(CID2);
//    //$target2->set_alias(Alias2);


        $rep =  $this->igt->pushMessageToList($contentId, $targetList);
       // DI()->logger->debug('PushAndroid',$rep);
        return $rep;
    }

    function IGtLinkTemplateDemo($title,$content)
    {
        $template = new IGtNotificationTemplate();
        $template->set_appId(APPID);                  //应用appid
        $template->set_appkey(APPKEY);                //应用appkey
        $template->set_title($title);       //通知栏标题
        $template->set_text($content);        //通知栏内容
        $template->set_logo("");                       //通知栏logo
        $template->set_logoURL("");                    //通知栏logo链接
        $template->set_isRing(true);                  //是否响铃
        $template->set_isVibrate(true);               //是否震动
        $template->set_isClearable(true);             //通知栏是否可清除
        //$template->set_url("http://www.igetui.com/"); //打开连接地址
        //设置通知定时展示时间，结束时间与开始时间相差需大于6分钟，消息推送后，客户端将在指定时间差内展示消息（误差6分钟）
//    $begin = "2015-02-28 15:26:22";
//    $end = "2015-02-28 15:31:24"
        return $template;
    }

    public function pushMessageToListIos($user_list,$title,$content)
    {

        //$igt = new IGeTui('',APPKEY,MASTERSECRET);//此方式可通过获取服务端地址列表判断最快域名后进行消息推送，
        //每10分钟检查一次最快域名

        //消息模版：
        // LinkTemplate:通知打开链接功能模板
        $template = $this->IGIGtLinkTemplateIos($title,$content);


        //定义"ListMessage"信息体
        $message = new IGtListMessage();
        $message->set_isOffline(true);//是否离线
        $message->set_offlineExpireTime(3600 * 12 * 1000);//离线时间
        $message->set_data($template);//设置推送消息类型
        $message->set_PushNetWorkType(0);//设置是否根据WIFI推送消息，1为wifi推送，0为不限制推送

        $contentId =  $this->igt->getContentId($message);
        //接收方1

//        $user_list = array();
//        $user_list[0] = '2650686ec127fb970ad1f6a577bb83b8';
        $targetList = array();
        for ($i = 0; $i < count($user_list); $i++) {
            $target = new IGtTarget();
            $target->set_appId(APPID);
            $target->set_clientId($user_list[$i]);
            $targetList[$i] = $target;
        }

//    //接收方2
//    $target2 = new IGtTarget();
//    $target2->set_appId(APPID);
//    $target2->set_clientId(CID2);
//    //$target2->set_alias(Alias2);


        $rep =  $this->igt->pushMessageToList($contentId, $targetList);
       // DI()->logger->debug('PushIos',$rep);
        return $rep;
    }

    function IGIGtLinkTemplateIos($title,$content){
        // iOS推送需要设置的pushInfo字段(老方法不再介意使用)
        //$template ->set_pushInfo($actionLocKey,$badge,$message,$sound,$payload,$locKey,$locArgs,$launchImage);
        //$template ->set_pushInfo("",2,"","","","","","");
        //iOS推送需要设置的pushInfo字段(推荐使用)
        $template =  new IGtTransmissionTemplate();
        $template->set_appId(APPID);//应用appid
        $template->set_appkey(APPKEY);//应用appkey
        $template->set_transmissionType(1);//透传消息类型
        $template->set_transmissionContent("测试离线ddd");//透传内容
        //$template->set_duration(BEGINTIME,ENDTIME); //设置ANDROID客户端在此时间区间内展示消息

// 如下有两个推送模版，一个简单一个高级，可以互相切换使用。此处以高级为例，所以把简单模版注释掉。
//        APN简单推送
//      $apn = new IGtAPNPayload();
//      $alertmsg=new SimpleAlertMsg();
//      $alertmsg->alertMsg="";
//      $apn->alertMsg=$alertmsg;
//      $apn->badge=2;
//      $apn->sound="";
//      $apn->add_customMsg("payload","payload");
//      $apn->contentAvailable=1;
//      $apn->category="ACTIONABLE";
//      $template->set_apnInfo($apn);

//       APN高级推送
        $apn = new IGtAPNPayload();
        $alertmsg=new DictionaryAlertMsg();
        $alertmsg->body="body";
        $alertmsg->actionLocKey="ActionLockey";
        $alertmsg->locKey="LocKey";
        $alertmsg->locArgs=array("locargs");
        $alertmsg->launchImage="launchimage";
//        IOS8.2 支持
        $alertmsg->title=$title;
        $alertmsg->titleLocKey="TitleLocKey";
        $alertmsg->titleLocArgs=array("TitleLocArg");

        $apn->alertMsg=$alertmsg;
        $apn->badge=1;
        $apn->sound="";
        $apn->add_customMsg("payload","阿波罗度上市");
//      $apn->contentAvailable=1;
        $apn->category="ACTIONABLE";
        $template->set_apnInfo($apn);

        return $template;
    }


}